import request from '@/utils/request'

// 查询课程学生信息列表
export function listCourseStudentInfo(query) {
  return request({
    url: '/trainingManagement/CourseStudentInfo/list',
    method: 'get',
    params: query
  })
}

// 查询课程学生信息详细
export function getCourseStudentInfo(id) {
  return request({
    url: '/trainingManagement/CourseStudentInfo/' + id,
    method: 'get'
  })
}

// 新增课程学生信息
export function addCourseStudentInfo(data) {
  return request({
    url: '/trainingManagement/CourseStudentInfo',
    method: 'post',
    data: data
  })
}

// 修改课程学生信息
export function updateCourseStudentInfo(data) {
  return request({
    url: '/trainingManagement/CourseStudentInfo',
    method: 'put',
    data: data
  })
}

// 删除课程学生信息
export function delCourseStudentInfo(id) {
  return request({
    url: '/trainingManagement/CourseStudentInfo/' + id,
    method: 'delete'
  })
}

/**
 * 批量更新课程学生信息列表的排课详情ID
 * @param {Object} params - 请求参数
 * @param {string} params.courseScheduleDetailsId - 目标课程排课详情ID（要更新成的值）
 * @param {Array} params.courseStudentInfoList - 待更新的课程学生信息列表（需包含主键id）
 * @returns {Promise} - 请求Promise对象
 */
export function updateCourseStudentInfoList(voList) {
  // voList：前端构造的 CourseStudentInfoVo 数组（即使只有1个元素，也需用数组）
  return request({
    url: '/trainingManagement/CourseStudentInfo/updateCourseStudentInfoList',
    method: 'post',
    data: voList, // 直接发送 Vo 数组，与后端 @RequestBody List<CourseStudentInfoVo> 完全匹配
    headers: { 'Content-Type': 'application/json' } // 显式指定JSON格式，避免解析异常
  });
}
